/*******************************************************************************
** 文件名称：avr_it.c
** 文件作用：中断函数源文件
** 编写作者：Tom Free 付瑞彪
** 编写时间：2018-10-19
** 文件备注：
** 更新记录：
**          2018-10-19 -> 将以前文件进行整理                         <Tom Free>
**
**          1 Tab == 4 Spaces     UTF-8     ANSI C Language (C99)
*******************************************************************************/

#include "app_inc.h"

#define STRINGVECTOR(x) #x

#define VECTOR_ID(x) STRINGVECTOR(vector = (x))

#define INTERRUPT_HANDLER(a, b) \
    _Pragma(VECTOR_ID((b)))     \
    __interrupt void (a)(void)

/*
RESET_vect           (0x00)
INT0_vect            (0x04)
INT1_vect            (0x08)
TIMER2_COMP_vect     (0x0C)
TIMER2_OVF_vect      (0x10)
TIMER1_CAPT_vect     (0x14)
TIMER1_COMPA_vect    (0x18)
TIMER1_COMPB_vect    (0x1C)
TIMER1_OVF_vect      (0x20)
TIMER0_OVF_vect      (0x24)
SPI_STC_vect         (0x28)
USART_RXC_vect       (0x2C)
USART_UDRE_vect      (0x30)
USART_TXC_vect       (0x34)
ADC_vect             (0x38)
EE_RDY_vect          (0x3C)
ANA_COMP_vect        (0x40)
TWI_vect             (0x44)
INT2_vect            (0x48)
TIMER0_COMP_vect     (0x4C)
SPM_RDY_vect         (0x50)
*/

/** TIMER0 溢出中断处理函数 */
INTERRUPT_HANDLER(TIMER0_COMP_IRQHandler, TIMER0_COMP_vect)
{
    /* 中断标志 */
    global_variable.timer0_int_flag = true;
    /* led扫描 */
    led_scan_one_row();
}
